Machine-to-machine (“M2M”) technology is a growing industry designed to communicatively connect machines to one another. An M2M solutions provider uses M2M technology to provide an M2M solution to a customer. For example, an M2M solutions provider may provide a customer such as a trucking company with an M2M solution that communicatively connects the trucking company's fleet of trucks to a company computing system (e.g., a personal or server computer operated by the trucking company). Company personnel may utilize the company computing system to monitor and/or control the fleet of trucks by way of the M2M solution.
An M2M solutions provider may provide an M2M solution over an M2M platform. Accordingly, the M2M solution may be said to be built on the M2M platform, with the M2M platform providing foundational functionality to support the M2M solution. For example, the M2M platform may provide underlying functionality that establishes communication paths and routes communications between a customer computing system and in-field customer assets as part of an M2M solution.
To this end, M2M device clients are typically deployed in the field together with in-field customer assets and configured to provide an interface between the customer assets and an M2M platform. For example, an M2M device client may be deployed on a truck included in a customer's fleet of trucks. The M2M device client may interface with the truck to receive and send data representative of operational parameters of the truck (e.g., truck location, speed, direction, fuel level, etc.) to the M2M platform. Additionally or alternatively, the M2M device client may receive and use communications provided by the M2M platform to configure the M2M device client and/or to control operations of the truck.
The configuration and/or functionality of an M2M device client dictates development of M2M devices that implement or will implement the M2M device client. For example, original equipment manufacturers (“OEMs”) may manufacture M2M devices in accordance with the configuration and/or functionality of the M2M device client. As another example, computing code developers may develop M2M device applications (e.g., embedded code and/or software applications for M2M devices) in accordance with the configuration and/or functionality of the M2M device client. The configuration and/or functionality of an M2M device client may also affect M2M network usage and costs associated with the M2M network usage, which may in turn affect the costs of an M2M solution. For these and/or other reasons, an M2M device client is desired that provides robust functionality, flexible configurability, and/or efficient network usage. Moreover, an interface to the M2M device client that promotes flexible configurability and cost-effective development of M2M devices and computing code is desired.